Computer programs are increasingly important to the efficient operation of business enterprises throughout the world. For business enterprises having operations located in various parts of the world, it is desirable to provide software having natural language text that has been translated into languages that are local to the area in which the end user is located. Accordingly, it is necessary to translate natural language portions of computer software into languages other than the language used by the original programmers.
For computer programs intended for use in many different areas around the world, a very large number of natural language translations are necessary. Accordingly, significant man hours must be expended in order to prepare such translations.
In a typical software development process, a version of a computer program is written using an original or source natural language (e.g., English). The source language program is then refined until it is deemed ready for commercial use, at which point the software product is finalized or mastered. Translation of natural language portions of the original program into other languages (e.g., German and Spanish) may then be undertaken after mastering of the original program. Because translation does not begin until the original program has been finalized, delays in bringing versions of the product to market in languages other than the source language can be significant.
In addition to delays in bringing translated programs to market, traditional approaches to preparing translations have been difficult to implement. This is because computer programs typically draw text from many different sources. Therefore, ensuring that all portions of natural language text associated with a computer program have been translated into a target language is an arduous and time consuming process.
In addition to difficulties ensuring that all of the natural language text has been translated, traditional methods for preparing translated computer programs have often resulted in inaccurate translations. This is because the context in which portions of natural language text are used in an application are often unavailable to the translator. As a result, the translation entered by a translator may be inappropriate when the translated text is seen in the context of its use in the computer program. In particular, the traditional method of considering natural language text as it appears in source tables, rather than in the context in which such language text will appear to the end user, may result in unsatisfactory translations.
Therefore, it would be highly desirable to provide a new system for preparing natural language translations of computer programs. In particular, it would be desirable to provide a system that allowed translations of natural language text contained in a computer program to be prepared concurrently with development of the original or source program. In addition, it would be desirable to provide such a system that allowed changes to the source text and changes to the translated text to be tracked, to avoid duplication of effort and to ensure that the translated portions of text accurately reflect the final version of text in the source program. Furthermore, it would be desirable to provide such a system that allowed a translator to view the context in which portions of natural language text appear in the computer program.